\section{\href{https://www.apiref.com/cpp-zh/cpp/utility/format.html}{format}(未完成，当前编译器不支持)}
\begin{cpp}
// 定义于头文件 <format>
template<class... Args>
std::string format(std::string_view fmt, const Args&... args);
(1)    (C++20 起)
template<class... Args>
std::wstring format(std::wstring_view fmt, const Args&... args);
(2)    (C++20 起)
template<class... Args>
std::string format(const std::locale& loc, std::string_view fmt, const Args&... args);
(3)    (C++20 起)
template<class... Args>
std::wstring format(const std::locale& loc, std::wstring_view fmt, const Args&... args);
(4)    (C++20 起)

\end{cpp}
按照格式字符串 fmt 格式化 args ，并返回作为 string 的结果。 loc 若存在，则用于本地环境特定的格式化。

若对 Args 中的任一 Ti ， std::formatter<Ti, CharT> 不满足格式化器 (Formatter) 要求则行为未定义，其中 CharT 是 decltype(fmt)::char\_type （对重载 (1,3) 为 char ，对重载 (2,4) 为 wchar\_t ）。

参数：
\begin{itemize}
\item fmt:
    表示格式字符串的字符串视图。 格式字符串由以下内容组成：
    \begin{itemize}
\item 通常字符（除了 { 与 } ），它们被不加修改地复制到输出，
\item 转义序列 {{ 与 }} ，它们在输出中被分别替换成 { 与 } ，以及
\item 替换域。
\end{itemize}
每个替换域拥有下列格式：
\begin{itemize}
\item 引入的 { 字符；
\item (可选) arg-id ，一个非负数；
\item (可选) 冒号（ : ）后随格式说明；
\item 终止的 } 字符。
\end{itemize}
arg-id 指定用于格式化其值的 args 中的参数的下标；若省略 arg-id ，则按顺序使用参数。格式字符串中的 arg-id 必须全部存在或全部被省略。混合手动和自动指定下标是错误。

格式说明由对应参数特化的 std::formatter 定义。
\begin{itemize}
\item 对于基本类型和标准字符串类型，格式说明为标准格式说明；
\item 对于标准日期和时间类型，格式说明为 chrono 格式说明；
\item 对于用户定义类型，格式说明由用户定义的 std::formatter 特化决定。
\end{itemize}
\item loc    -    用于本地环境特定格式化的 \href{https://www.apiref.com/cpp-zh/cpp/locale/locale.html}{std::locale}。
\end{itemize}

返回值：格式化之后的 string 对象
异常：若 fmt 提供的参数不合法时抛出 std::format\_error 。并且会传播任何格式化器所抛的异常。

